import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import java.awt.Color;
import java.awt.Font;
import java.util.Calendar;
import java.util.Date;

public class HiloEntrada extends Thread {
	
	private JLabel fondo;
	private JTextArea jt4_texto;
	@SuppressWarnings("unused")
	private int posX, posY;
	private Cliente cliente;
	private Cola cola;
	private Histograma histo;
	private EntradaClientes ec;
	private JTable jt_tabla_reportes;
	
	private int rand;
	private int c;
	private long b;
	
	private JTable jt2_tabla_reportes;
	private JTable jt3_tabla_reportes;
	private JLabel fJ;
	private Font letras;
	private Object a;
	int random=(int)(Math.random()*2);//para las llamadas de ambos empleados
	

	private long slider;

	public HiloEntrada(JLabel f, Histograma h, EntradaClientes ec, JTable jt_tabla_reportes, JSlider slider,JComboBox combo,JTable jt2_tabla_reportes,JTable jt3_tabla_reportes, JTextArea jt4_texto) {
		
		fondo = f;
		cliente = new Cliente();
		histo = h;
		cola = new Cola(fondo, histo);
		posX = 0;
		posY = 0;
		this.ec=ec;
		this.jt_tabla_reportes=jt_tabla_reportes;
		this.jt4_texto=jt4_texto;	
		
		
		a=combo.getSelectedItem();
		c=Integer.parseInt((String) a) ;
		b=(long)c;
		this.jt2_tabla_reportes = jt2_tabla_reportes;//caja
		this.jt3_tabla_reportes=jt3_tabla_reportes;//tomador
		fJ=new JLabel();
		//int a=Integer.toString(c);
		this.slider =100/Long.parseLong(Integer.toString(slider.getValue()));
	}

	/*
	 * DISTRIBUCIONES EN EL SISTEMA
	 */
	/*---------------------------- 1 -------------------------------------*/
	public boolean repartirOficina() {
		boolean envio = false;
		int porcentaje = (int) (Math.random() * 100) + 1;
		if (porcentaje <= 70)
			envio = true;
		else
			envio = false;
		return envio;
	}

	/*---------------------------- 2 -------------------------------------*/
	public boolean repartirTomador() {
		boolean envio = false;
		int porcentaje = (int) (Math.random() * 100) + 1;
		if (porcentaje <= 55)
			envio = true;
		else
			envio = false;
		return envio;
	}

	/*---------------------------- 3 -------------------------------------*/
	
	public boolean repartirAtencionCaja() {
		boolean envio = false;
		int porcentaje = (int) (Math.random() * 100) + 1;
		if (porcentaje <= 30)
			envio = true;
		else
			envio = false;
		return envio;
	}

/*
 * SIMULACION QUE VA A TOMADOR DE APUESTAS
 */
	public void movimEstadoSur() {
		

		cliente.CambiarImagS();
		for (int j = 296; j < 430; j++) {
			cliente.setLocation(130, j);
			fJ.setBounds(130, j+15, 25, 25);
			fJ.setText(Integer.toString(ec. getEntrada_clientes()-1));
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		
		movimEstadoEste();
		
		
	}
	
	public static String DaHora(){
		 Calendar Hora = Calendar.getInstance();
		 String g= (Hora.get(Calendar.HOUR_OF_DAY) +
				":" + Hora.get(Calendar.MINUTE) + ":"+ (Hora.get(Calendar.SECOND)));
		return g;
		
	}
	
	public void movimEstadoEste() {
		int posFinal = 0;
		int posLibre = 0;
		
		cliente.CambiarImagE();
		
		// coby_master incremento de clientes que entran a estado de cuenta		
		jt_tabla_reportes.setValueAt(ec.getClientes_entran_ta(),15,1);
		
		ec.incrementar_Cli_Entran_TA();
		
					
		for (int j = 130; j < 263; j++) {
			cliente.setLocation(j, 430);
			fondo.add(cliente);
			fJ.setBounds(j+15, 430, 25, 25);
			fJ.setText(Integer.toString(ec.getEntrada_clientes()-1));
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		
		posFinal = cola.buscarVacio(0);
		if (posFinal == 0)
			System.out.println("");
			//movimTomadorSalida();
		else {
			
			for (int j = 263; j < posFinal; j++) {
				cliente.setLocation(j, 430);
				fondo.add(cliente);
				fJ.setBounds(j+15, 430, 25, 25);
				fJ.setText(Integer.toString(ec.getEntrada_clientes()-1));
				try {
					Thread.sleep(slider);
				} catch (Exception e) {
				}
			}
			cliente.cambiarParado();
			try {
				int x=ec.getClientes_entran_ta();
				if(b==1||b==5){
					
					jt3_tabla_reportes.setValueAt(x-1,x-2,0);
					Thread.sleep((1*1000));//entrega de formulario
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,1);
					Thread.sleep((DistribucionNormal.normal(2, 1)*1000));//llenado del formulario
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,2);
					int por=(int)(Math.random()*100)+1;
					if (por<= 30){
						jt3_tabla_reportes.setValueAt("G",x-2,3);
						jt_tabla_reportes.setValueAt(ec.getGanador(),25,1);
						ec.setIncreGanador();
					}
					else if (por<= 70){
						jt3_tabla_reportes.setValueAt("P",x-2,3);
						jt_tabla_reportes.setValueAt(ec.getPerdedor(),26,1);
						ec.setIncrePerdedor();
					}
					Thread.sleep((DistribucionNormal.normal(3, 1)));//carga a la compu
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,4);
					Thread.sleep((2*1000));//pago de apuestas
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,5);
					Thread.sleep((Transformada.expo(3)));//entre llamadas
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,6);
					jt_tabla_reportes.setValueAt(ec.getLLamadas(),21,1);
					ec.setIncreLLamadas();
					
					jt4_texto.append("entrada de llamadas\n");

					rand=(int)(Math.random()*2);
					if(rand==1){
						Thread.sleep((Transformada.expo(1)));//atencion de llamadas
						jt3_tabla_reportes.setValueAt(DaHora(),x-2,7);
						jt_tabla_reportes.setValueAt(ec.getContestadas()+1,22,1);
						jt4_texto.append("llamada contestada\n");

						ec.setIncreContestadas();
						
					}
					else if(rand==0){
						jt_tabla_reportes.setValueAt(ec.getPerdidas(),23,1);
						jt4_texto.append("llamada perdida\n");

						ec.setIncrePerdidas();
					}
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,8);
				}
					
				if (b==2){
					
					jt3_tabla_reportes.setValueAt(x-1,x-2,0);
					Thread.sleep((1*1000));//entrega de formulario
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,1);
					Thread.sleep((DistribucionNormal.normal(2, 1)*1000));//llenado del formulario
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,2);
					int por=(int)(Math.random()*100)+1;
					if(por<=30){
						jt3_tabla_reportes.setValueAt("G",x-2,3);
						jt_tabla_reportes.setValueAt(ec.getGanador(),25,1);
						ec.setIncreGanador();
					}
					else if(por<=70){
						jt3_tabla_reportes.setValueAt("P",x-2,3);
						jt_tabla_reportes.setValueAt(ec.getPerdedor(),26,1);
						ec.setIncrePerdedor();
					}
					Thread.sleep((DistribucionNormal.normal(3, 1)));//carga a la compu
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,4);
					Thread.sleep((2*1000));//pago de apuestas
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,5);
					/*Thread.sleep((Transformada.expo(3)));//entre llamadas
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,6);
					jt_tabla_reportes.setValueAt(ec.getLLamadas(),21,1);
					
					ec.setIncreLLamadas();
					
					Thread.sleep((Transformada.expo(1)));//atencion de llamadas
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,7);
					int rand=(int)(Math.random()*2);
					if(rand==1){
						
						jt_tabla_reportes.setValueAt(ec.getContestadas()+1,22,1);
						
						ec.setIncreContestadas();
					}
					else if(rand==0){
						
						jt_tabla_reportes.setValueAt(ec.getPerdidas(),23,1);
						
						ec.setIncrePerdidas();
					}
					*/			
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,8);
				}
				if(b==3){
					
					jt3_tabla_reportes.setValueAt(x-1,x-2,0);
					Thread.sleep((1*1000));//entrega de formulario
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,1);
					Thread.sleep((DistribucionNormal.normal(2, 1)*1000));//llenado del formulario
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,2);
					int por=(int)(Math.random()*100)+1;
					if(por<=30){
						jt3_tabla_reportes.setValueAt("G",x-2,3);
						jt_tabla_reportes.setValueAt(ec.getGanador(),25,1);
						ec.setIncreGanador();
					}
					else if(por<=70){
						jt3_tabla_reportes.setValueAt("P",x-2,3);
						jt_tabla_reportes.setValueAt(ec.getPerdedor(),26,1);
						ec.setIncrePerdedor();
					}
					Thread.sleep((DistribucionNormal.normal(3, 1)));//carga a la compu
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,4);
					Thread.sleep((2*1000));//pago de apuestas
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,5);
					if(random==1){
						int rand=(int)(Math.random()*2);

						Thread.sleep((Transformada.expo(3)));//entre llamadas
						jt3_tabla_reportes.setValueAt(DaHora(),x-2,6);
						jt_tabla_reportes.setValueAt(ec.getLLamadas(),21,1);
						ec.setIncreLLamadas();
						
						jt4_texto.append("entrada de llamadas\n");

						if(rand==1){
							Thread.sleep((Transformada.expo(1)));//atencion de llamadas
							jt3_tabla_reportes.setValueAt(DaHora(),x-2,7);
							jt_tabla_reportes.setValueAt(ec.getContestadas()+1,22,1);
							jt4_texto.append("llamada contestada\n");

							ec.setIncreContestadas();
						}
						else if(rand==0){
							jt_tabla_reportes.setValueAt(ec.getPerdidas(),23,1);
							jt4_texto.append("llamada perdida\n");

							ec.setIncrePerdidas();
						}
						jt3_tabla_reportes.setValueAt(DaHora(),x-2,8);
					}
				}
				if(b==4){
					int be=2;
					
					jt3_tabla_reportes.setValueAt(x-1,x-2,0);
					Thread.sleep((1*1000)/be);//entrega de formulario
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,1);
					Thread.sleep((DistribucionNormal.normal(2, 1)*1000/be));//llenado del formulario
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,2);
					int por=(int)(Math.random()*100)+1;
					if(por<=30){
						jt3_tabla_reportes.setValueAt("G",x-2,3);
						jt_tabla_reportes.setValueAt(ec.getGanador(),25,1);
						ec.setIncreGanador();
					}
					else if(por<=70){
						jt3_tabla_reportes.setValueAt("P",x-2,3);
						jt_tabla_reportes.setValueAt(ec.getPerdedor(),26,1);
						ec.setIncrePerdedor();
					}
					Thread.sleep((DistribucionNormal.normal(3, 1))/be);//carga a la compu
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,4);
					Thread.sleep((2*1000)/be);//pago de apuestas
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,5);
					
					Thread.sleep((Transformada.expo(3))/be);//entre llamadas
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,6);
					jt_tabla_reportes.setValueAt(ec.getLLamadas(),21,1);
					jt4_texto.append("entrada de llamadas\n");

					ec.setIncreLLamadas();
					
					int rand=(int)(Math.random()*2);
					if(rand==1){
						Thread.sleep((Transformada.expo(1))/be);//atencion de llamadas
						jt3_tabla_reportes.setValueAt(DaHora(),x-2,7);
						jt_tabla_reportes.setValueAt(ec.getContestadas()+1,22,1);
						jt4_texto.append("llamada contestada\n");

						ec.setIncreContestadas();
					}
					else if(rand==0){
						jt_tabla_reportes.setValueAt(ec.getPerdidas(),23,1);
						jt4_texto.append("llamada perdida\n");

						ec.setIncrePerdidas();
					}
					jt3_tabla_reportes.setValueAt(DaHora(),x-2,8);
					
				}
				
			} catch (Exception e) {}

			if (cliente.getX() == 513) {
				histo.fijarEstadoPuesto(0, 0, false);
				luegoAtencionTomador();
			} else {
				while (cliente.getX() < 488) {
					posLibre = cola.marcarVacio(0, cliente.getX());
					histo.fijarEstadoPuesto(0, posLibre, false);
					moverPosicion(0);
					posFinal = cola.buscarVacio(0);

					try {
						Thread.sleep(5000);
					} catch (Exception e) {
					}
				}
				luegoAtencionTomador();
			}
		}
		
	}

/*
 * SIMULACION QUE VA A CAJA
 */
	public void movimCajaNorte() {
		cliente.CambiarImagN();
		for (int j = 210; j > 80; j--) {
			cliente.setLocation(130, j);
			fondo.add(cliente);
			fJ.setBounds(130, j+15, 25, 25);
			fJ.setText(Integer.toString(ec.getEntrada_clientes()-1));
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		

		movimCajaEste();
		
	}

	public void movimCajaEste() {
		int posFinal = 0;
		int posLibre = 0;
		
		cliente.CambiarImagE();
		
		// coby_master ==> incrementando el numero de clientes que entran a caja		
		jt_tabla_reportes.setValueAt(ec.getClientes_entran_caja(),8, 1);
		
		
		
		ec.incrementar_Cli_Entran_Caja();
		
		
		for (int j = 130; j < 263; j++) {
			cliente.setLocation(j, 80);
			fondo.add(cliente);
			fJ.setBounds(j+15, 80, 25, 25);
			fJ.setText(Integer.toString(ec.getEntrada_clientes()-1));
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
	
		posFinal = cola.buscarVacio(1);
		if (posFinal == 0)
			System.out.println("");
			//movimCajaSalida();
		else {

			for (int j = 263; j < posFinal; j++) {
				cliente.setLocation(j, 80);
				fondo.add(cliente);
				fJ.setBounds(j+15, 80, 25, 25);
				fJ.setText(Integer.toString(ec.getEntrada_clientes()-1));
				try {
					Thread.sleep(slider);
				} catch (Exception e) {
				}
			}
			cliente.cambiarParado();
			
			try {
				int y=ec.getClientes_entran_caja();
				if(b==1||b==4||b==5){
					
					jt2_tabla_reportes.setValueAt(y-1,y-2,0);
					Thread.sleep((1*1000));//recepcion 
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,1);
					Thread.sleep((DistribucionNormal.normal(5, 1)*1000));//verificacion de la apuesta
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,2);
					Thread.sleep((2*1000));//cobro de la apuesta
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,3);
					//jt2_tabla_reportes.setValueAt(DaHora(),y-2,4);
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,6);//salida
				}
				if(b==2){
					
					jt2_tabla_reportes.setValueAt(y-1,y-2,0);
					Thread.sleep((1*1000));//recepcion 
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,1);
					Thread.sleep((DistribucionNormal.normal(5, 1)*1000));//verificacion de la apuesta
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,2);
					Thread.sleep((2*1000));//cobro de la apuesta
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,3);
					//jt2_tabla_reportes.setValueAt(DaHora(),y-2,4);//desde aqui
					
					Thread.sleep((Transformada.expo(3)));//entre llamadas
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,4);
					jt_tabla_reportes.setValueAt(ec.getLLamadas(),21,1);
					jt4_texto.append("entrada de llamadas\n");
					ec.setIncreLLamadas();
					
					
					int rand=(int)(Math.random()*2);
					if(rand==1){
						Thread.sleep((Transformada.expo(1)));//atencion de llamadas
						jt2_tabla_reportes.setValueAt(DaHora(),y-2,5);
						jt_tabla_reportes.setValueAt(ec.getContestadas()+1,22,1);
						jt4_texto.append("llamada Contestada\n");

						ec.setIncreContestadas();
					}
					else if(rand==0){
						
						jt_tabla_reportes.setValueAt(ec.getPerdidas(),23,1);
						jt4_texto.append("llamada Perdida\n");

						ec.setIncrePerdidas();
					}
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,6);
				}
				if(b==3){
					
					jt2_tabla_reportes.setValueAt(y-1,y-2,0);
					Thread.sleep((1*1000));//recepcion 
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,1);
					Thread.sleep((DistribucionNormal.normal(5, 1)*1000));//verificacion de la apuesta
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,2);
					Thread.sleep((2*1000));//cobro de la apuesta
					jt2_tabla_reportes.setValueAt(DaHora(),y-2,3);
					//jt2_tabla_reportes.setValueAt(DaHora(),y-2,4);//desde aqui
					if(random==0){
						Thread.sleep((Transformada.expo(3)));//entre llamadas
						jt2_tabla_reportes.setValueAt(DaHora(),y-2,4);
						jt_tabla_reportes.setValueAt(ec.getLLamadas(),21,1);
						jt4_texto.append("entrada de llamadas\n");

						
						ec.setIncreLLamadas();
						
						
						int rand=(int)(Math.random()*2);
						if(rand==1){
							Thread.sleep((Transformada.expo(1)));//atencion de llamadas
							jt2_tabla_reportes.setValueAt(DaHora(),y-2,5);
							jt_tabla_reportes.setValueAt(ec.getContestadas()+1,22,1);
							ec.setIncreContestadas();
						}
						else if(rand==0){
							
							jt_tabla_reportes.setValueAt(ec.getPerdidas(),23,1);
							
							ec.setIncrePerdidas();
						}
						jt2_tabla_reportes.setValueAt(DaHora(),y-2,6);
					}
				}
				

				
			} catch (Exception e) {
			}

			if (cliente.getX() == 513) {
				histo.fijarEstadoPuesto(1, 0, false);
				luegoAtencionCaja();
			} else {
				while (cliente.getX() < 488) {
					posLibre = cola.marcarVacio(1, cliente.getX());
					histo.fijarEstadoPuesto(1, posLibre, false);
					moverPosicion(1);
					posFinal = cola.buscarVacio(1);

					try {
						Thread.sleep(10000);
					} catch (Exception e) {
					}
				}
				luegoAtencionCaja();
			}
		}
		
	}

	public void moverPosicion(int col) {
		cliente.CambiarImagE();
		int posX = cliente.getX();
		if (col == 0) {
			for (int j = posX; j < posX + 25; j++) {
				cliente.setLocation(j, 430);
				fondo.add(cliente);
				try {
					Thread.sleep(slider);
				} catch (Exception e) {
				}
			}
		} else {
			for (int j = posX; j < posX + 25; j++) {
				cliente.setLocation(j, 80);
				fondo.add(cliente);
				try {
					Thread.sleep(slider);
				} catch (Exception e) {
				}
			}
		}
		cliente.cambiarParado();
	}
	
	public void movimTomadorSalida() {
		cliente.CambiarImagS();
		for (int j = 430; j < 490; j++) {
			cliente.setLocation(263, j);
			fondo.add(cliente);
			
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		cliente.CambiarImagE();
		for (int j = 263; j < 650; j++) {
			cliente.setLocation(j, 490);
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		cliente.CambiarImagN();
		for (int j = 490; j > 360; j--) {
			cliente.setLocation(650, j);
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		cliente.CambiarImagE();
		for (int j = 650; j < 780; j++) {
			cliente.setLocation(j, 360);
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		
		System.out.println ("El cliente esta saliendo de Tomador de Apuestas porque la cola esta muy llena");
		
		cliente.cambiarFalso();

	}

	public void movimCajaSalida() {
		cliente.CambiarImagN();
		for (int j = 80; j > 20; j--) {
			cliente.setLocation(263, j);
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		cliente.CambiarImagE();
		for (int j = 263; j < 650; j++) {
			cliente.setLocation(j, 20);
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		cliente.CambiarImagS();
		for (int j = 20; j < 150; j++) {
			cliente.setLocation(650, j);
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		cliente.CambiarImagE();
		for (int j = 650; j < 780; j++) {
			cliente.setLocation(j, 150);
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
		}
		
		//jt4_texto.append("El cliente esta saliendo de Caja porque la cola esta muy llena");
		
		cliente.cambiarFalso();

	}
	public void caminaDerecho(int x, int y, int l){
		cliente.CambiarImagE();
		try{
			for(int i=x;i<l;i++){
		
			cliente.setLocation(i, y);
			fondo.add(cliente);
			fJ.setBounds(i+15, y, 25, 25);
			fJ.setText(Integer.toString(ec.getEntrada_clientes()-1));
			Thread.sleep(slider);
			fondo.repaint();
			}
		}
		catch (InterruptedException e){}
		
				
	}
	public void caminaAbajo(int x, int y, int l){
		cliente.CambiarImagS();
		try{
			for(int i=y;i<l;i++){
				cliente.setLocation(x,i);
				fondo.add(cliente);
				fJ.setBounds(x, i+15, 25, 25);
				fJ.setText(Integer.toString(ec.getEntrada_clientes()-1));
				Thread.sleep(slider);
				fondo.repaint();
			}
			
		}
		catch (InterruptedException e){}
	}
	public void caminaArriba(int x, int y,int l){
		cliente.CambiarImagN();
		try{
			for(int i=y;i>l;i--){
				cliente.setLocation(x,i);
				fondo.add(cliente);
				fJ.setBounds(x, i+15, 25, 25);
				fJ.setText(Integer.toString(ec.getEntrada_clientes()-1));
				Thread.sleep(slider);
				fondo.repaint();
			}
			
		}
		catch (InterruptedException e){}
		
	}
	public void luegoAtencionTomador() {
		boolean repartir = repartirTomador();
		@SuppressWarnings("unused")
		int posFinal = 0;
		if (repartir == true) {
			// coby_master ==> incrementando el numero de clientes que salen de estado de cuenta
			//jt_tabla_reportes.setValueAt(ec.getClientes_salen_ec(), 16, 1);
			//ec.incrementar_Cli_Salen_EC();
			caminaAbajo(513,430,500);
			caminaDerecho(513,500,700);
			caminaArriba(700,500,360);
			caminaDerecho(700,360,780);
			jt4_texto.append("El cliente esta saliendo de Tomador de Apuestas\n");
			fJ.setText("");
			cliente.cambiarFalso();
			

		} /*else {
			cliente.CambiarImagNO();
			for (int i = 513, j = 430; i > 130 && j > 80; i--, j--) {
				cliente.setLocation(i, j);
				fondo.add(cliente);
				try {
					Thread.sleep(velocidad_simulacion);
				} catch (Exception e) {
				}

			}
			
			System.out.println ("El cliente se dirije a Caja desde EstadoCuenta");
			
			movimCajaEste();

		}*/
	}

	public void luegoAtencionCaja() {
		boolean repartir = repartirAtencionCaja();
		@SuppressWarnings("unused")
		int posFinal = 0;
		if (repartir == true) {
			
			// coby_master ==> incrementando el numero de clientes que salen de caja
			//jt_tabla_reportes.setValueAt(ec.getClientes_salen_caja(), 9, 1);
			//ec.incrementar_Cli_Salen_Caja();
			
			 caminaArriba(513,80,10);
			 caminaDerecho(513,10,700);
			 caminaAbajo(700,10,150);
			 caminaDerecho(700,150,780);
			 
			
			 jt4_texto.append("El cliente esta saliendo de Caja\n");
			
			fJ.setText("");
			cliente.cambiarFalso();

		}/* else {
			cliente.CambiarImagSO();
			for (int i = 513, j = 80; i > 130 && j < 430; i--, j++) {
				cliente.setLocation(i, j);
				fondo.add(cliente);
				try {
					Thread.sleep(velocidad_simulacion);
				} catch (Exception e) {
				}

			}
			
			System.out.println ("El cliente se dirije a EstadoCuenta desde Caja");
			
			movimEstadoEste();
		}*/
	}

	/*-----------------------------------------------------------------------------*/
	public void run() {
		
		cliente.CambiarImagE();
		for (int f = 10; f < 130; f++) {
			
			fJ.setBounds(f+15,290,25,25);
			fJ.setText(Integer.toString(ec.getEntrada_clientes()));
			
			fJ.setFont(letras);
			fJ.setForeground(Color.BLUE);
			
						
			cliente.setLocation(f, 250);
			fondo.add(fJ);
			fondo.add(cliente);
			try {
				Thread.sleep(slider);
			} catch (Exception e) {
			}
			
		}
		
		
		
		ec.setIncremento_clientes();
		
	
	
		boolean repartir = repartirOficina();
		if (repartir == true)
			
		{			
			jt4_texto.append("El cliente se va a Tomador de Apuestas\n");
			
			movimEstadoSur();
			
		} else {
			
			jt4_texto.append("El cliente se va a Caja\n");
			
			
			movimCajaNorte();
			
		}
		
		
	}
	
}